
//语言对文件进行读写操作
#include<stdio.h>

#define LOG "log.txt"




int main()
{
  FILE *fp=fopen(LOG,"r");
  //按行读取，将读取内容放入缓冲区
  while(1)
  {
    char line[128];//缓冲区
    if(fgets(line,sizeof(line),fp)==NULL)break;
    else printf("%s",line);
  }
  


//  FILE *fp=fopen(LOG,"w");//w：默认写方式打开文件，如果该文件不存在则创建该文件
//  //w在每次打开时，会将原有内容清空。然后再重新写入，每次写入时会从最开始写入
//  //a：不会清空文件，每次写入都是从文件的结尾写入，追加
//  if(fp==NULL)//当fopen函数返回值为NULL时，说明出现错误
//  {
//    perror("fopen");//类似strerror，将错误码转换为字符串
//    return 1;
//  }

  //const char* msg="这是一个文件测试用例";
  //int cnt=10;
  //while(cnt)  
  //{
  //  //snprintf
  //  //int snprintf ( char * str, size_t size, const char * format, ... );
  //  //用于格式化输出字符串，并将结果写入指定缓冲区str。snprintf会限制输出的字符数量，避免缓冲区溢出，通过size进行控制
  //  char buffer[256];
  //  snprintf(buffer,sizeof(buffer),"%s:%d:rxy\n",msg,cnt);
  //  fputs(buffer,fp);
  //  //int fprintf( FILE *stream, const char *format, ... );
  //  //fprintf根据指定的format格式发送信息到stream指定的文件中
  //  //fprintf(stdout,"%s:%d:rxy\n",msg,cnt);//在linux中，一切皆文件，因此stdout也对应一个文件，是显示器文件
  //  //fputs(msg,fp);//将msg放入fp文件中，失败返回EOF即-1
  //  cnt--;
  //}
  //
  //
  //fclose(fp);//关闭该文件
  //return 0;


}
